/***
 * @DESC reg验证模块
 * @Sonkwl
 */
var reg={
    //富士康工号
    fno:/^(([A-Z0-9a-z]|[\u4e00-\u9fa5]{1,4}){4,10})|(\d{18})$/,
    //富士康邮箱
    fmail:/^([a-zA-Z]|[0-9])(\w|\-)+@(mail.foxconn.com)|(foxconn.com)$/,
    //邮箱
    mail:/^([a-zA-Z0-9]+[_|_|\-|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,6}$/,
    //身份证号
    sid:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
    //手机号(大陆，香港，澳门)
    mobile:/(^\d{11}$)|(^([6|9])\d{7}$)|(^[6]([8|6])\d{5})/,
    //日期：2021-01-01
    date:/^\d{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])$/,
    ////月份
    month:/^\d{4}\-(0[1-9]|1[0-2])$/,
    //时间格式 12:00
    time:/^([0-1][0-9]|2[0-3]):([0-5][0-9])$/,
    //富士康分机
    ftel:/(^\d{5,6}$)|(^\d{3}-\d{5,6}$)|(^\d{8,9}$)/,
    //URL
    url:/[a-zA-z]+:\/\/[^\s]/,
    //国内固定号码
    tel:/\d{3}-\d{8}|\d{4}-\d{7}/,
    //IP地址
    ip:/\d+\.\d+\.\d+\.\d+/,

    Test:function(method,value){
        if(typeof reg[method]==="undefined"){
            console.log("没有包含["+method+"]的验证");
            return false;
        }
        // console.log(reg[method]);
        
        var patt=new RegExp(reg[method]);
        // console.log(patt.test(value));
        return patt.test(value);
    }
}

//验证
reg.Validate=function(elem){
    if(typeof elem.getAttribute("validate")==="undefined"){
        console.log("请定义validate属性");
        return false;
    }
    //比对文字长度
    if(elem.getAttribute("validate")=="len"){
        var min=elem.getAttribute("min")?parseInt(elem.getAttribute("min")):0;
        var max=elem.getAttribute("max")?parseInt(elem.getAttribute("max")):0;
        // console.log(elem.value.length);
        if(elem.value.length<min && min!=0){
            elem.style.backgroundColor="red";
            console.log(elem);
            return false;
        }
        if(elem.value.length>max && max!=0){
            elem.style.backgroundColor="red";
            console.log(elem);
            return false;
        }
        elem.style.backgroundColor="";
        return true;
    }
    if(!reg.Test(elem.getAttribute("validate"),elem.value)){
        elem.style.backgroundColor="red";
        console.log(elem);
        return false;
    }
    elem.style.backgroundColor="";
    return true;
}

//遍历比对数据
reg.Validates=function(){
    var vinput=[];
    for(var i=0;i<document.querySelectorAll("input").length;i++){
        if(document.querySelectorAll("input")[i].getAttribute("validate")){
            vinput.push(document.querySelectorAll("input")[i]);
        }
    }
    for(var i=0;i<document.querySelectorAll("textarea").length;i++){
        if(document.querySelectorAll("textarea")[i].getAttribute("validate")){
            vinput.push(document.querySelectorAll("textarea")[i]);
        }
    }
    for(var i=0;i<vinput.length;i++){
        if(!reg.Validate(vinput[i])){
            return false;
        } 
    }
    return true;
}